home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 1
/
Cream of the Crop 1.iso
/
OS2
/
MS_SH200.ARJ
/
SH.MAN
< prev
next >
Wrap
Text File
|
1992-04-14
|
135KB
|
2,234 lines
SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
NNNNAAAAMMMMEEEE
sh, rsh - shell, the standard/restricted command programming language
SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
sssshhhh [ ----aaaacccceeeeffffhhhhiiiikkkknnnnmmmmrrrrssssttttuuuuvvvvxxxx0000RRRR ] [ args ]
rrrrsssshhhh [ ----aaaacccceeeeffffhhhhiiiikkkknnnnmmmmrrrrssssttttuuuuvvvvxxxx0000RRRR ] [ args ]
DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
_S_h is a command programming language that executes commands read from
a terminal or a file. _R_s_h is a restricted version of the standard
command interpreter _s_h; it is used to set up login names and execution
environments whose capabilities are more controlled than those of the
standard shell. See _I_n_v_o_c_a_t_i_o_n below for the meaning of arguments to
the shell.
DDDDeeeeffffiiiinnnniiiittttiiiioooonnnnssss
A _b_l_a_n_k is a tab or a space. A _n_a_m_e is a sequence of letters, digits,
or underscores beginning with a letter or underscore. A _p_a_r_a_m_e_t_e_r is
a name, a digit, or any of the characters ****, @@@@, ####, ????, ----, $$$$, and !!!!.
CCCCoooommmmmmmmaaaannnnddddssss
A _s_i_m_p_l_e-_c_o_m_m_a_n_d is a sequence of non-blank _w_o_r_d_s separated by _b_l_a_n_k_s.
The first word specifies the name of the command to be executed.
Except as specified below, the remaining words are passed as arguments
to the invoked command. The command name is passed as argument 0 (see
_e_x_e_c(2)). The _v_a_l_u_e of a simple-command is its exit status if it
terminates normally, or (octal) 200+_s_t_a_t_u_s if it terminates abnormally
(see _s_i_g_n_a_l(2) for a list of status values).
A _p_i_p_e_l_i_n_e is a sequence of one or more _c_o_m_m_a_n_d_s separated by |||| (or,
for historical compatibility, by ^^^^). The standard output of each
command but the last is connected by a _p_i_p_e(2) to the standard input
of the next command. Each command is run as a separate process; the
shell waits for the last command to terminate. The exit status of a
pipeline is the exit status of the last command.
A _l_i_s_t is a sequence of one or more pipelines separated by ;;;;, &&&& (OS/2
only), &&&&&&&&, or ||||||||, and optionally terminated by ;;;; or &&&& (OS/2 only). Of
these four symbols, ;;;; and &&&& have equal precedence, which is lower
precedence than that of &&&&&&&& and ||||||||. The symbols &&&&&&&& and |||||||| also have
equal precedence. A semicolon (;;;;) causes sequential execution of the
preceding pipeline; an ampersand (&&&&) causes asynchronous execution of
the preceding pipeline (i.e., the shell does not wait for that command
to finish. This option is only available under OS/2 and is restricted
to single commands and not pipelines because of the differences in the
UNIX and OS/2 process models). The symbol &&&&&&&& (||||||||) causes the _l_i_s_t
following it to be executed only if the preceding pipeline returns a
zero (non-zero) exit status. An arbitrary number of new-lines may
appear in a _l_i_s_t, instead of semicolons, to delimit commands.
- 1 - Formatted: April 14, 1992
SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
A _c_o_m_m_a_n_d is either a simple-command or one of the following. Unless
otherwise stated, the value returned by a command is that of the last
simple-command executed in the command.
ffffoooorrrr _n_a_m_e [ iiiinnnn _w_o_r_d ... ] ddddoooo _l_i_s_t ddddoooonnnneeee
Each time a ffffoooorrrr command is executed, _n_a_m_e is set to the next _w_o_r_d
taken from the iiiinnnn _w_o_r_d list. If iiiinnnn _w_o_r_d ... is omitted, then
the ffffoooorrrr command executes the ddddoooo _l_i_s_t once for each positional
parameter that is set (see _P_a_r_a_m_e_t_e_r _S_u_b_s_t_i_t_u_t_i_o_n below).
Execution ends when there are no more words in the list.
sssseeeelllleeeecccctttt _n_a_m_e [ iiiinnnn _w_o_r_d ... ] ddddoooo _l_i_s_t ddddoooonnnneeee
A sssseeeelllleeeecccctttt command prints on standard error (file descriptor 2),
the set of _w_o_r_ds, each preceded by a number. If iiiinnnn _w_o_r_d ... is
omitted, then the positional parameters are used instead (see
_P_a_r_a_m_e_t_e_r _S_u_b_s_t_i_t_u_t_i_o_n below). The PPPPSSSS3333 prompt is printed and a
line is read from the standard input. If this line consists of
the number of one of the listed _w_o_r_ds, then the value of the
parameter _n_a_m_e is set to the _w_o_r_d corresponding to this number.
If this line is empty the selection list is printed again.
Otherwise the value of the parameter _n_a_m_e is set to null. The
contents of the line read from standard input is saved in the
parameter RRRREEEEPPPPLLLLYYYY. The list is executed for each selection until a
break or end-of-file is encountered.
ccccaaaasssseeee _w_o_r_d iiiinnnn [ _p_a_t_t_e_r_n [ | _p_a_t_t_e_r_n ] ... )))) _l_i_s_t ;;;;;;;; ] ... eeeessssaaaacccc
A ccccaaaasssseeee command executes the _l_i_s_t associated with the first
_p_a_t_t_e_r_n that matches _w_o_r_d. The form of the patterns is the same
as that used for file-name generation (see _F_i_l_e _N_a_m_e _G_e_n_e_r_a_t_i_o_n)
except that a slash, a leading dot, or a dot immediately
following a slash need not be matched explicitly, and the match
is case sensitive.
iiiiffff _l_i_s_t tttthhhheeeennnn _l_i_s_t [ eeeelllliiiiffff _l_i_s_t tttthhhheeeennnn _l_i_s_t ] ... [ eeeellllsssseeee _l_i_s_t ] ffffiiii
The _l_i_s_t following iiiiffff is executed and, if it returns a zero exit
status, the _l_i_s_t following the first tttthhhheeeennnn is executed.
Otherwise, the _l_i_s_t following eeeelllliiiiffff is executed and, if its value
is zero, the _l_i_s_t following the next tttthhhheeeennnn is executed. Failing
that, the eeeellllsssseeee _l_i_s_t is executed. If no eeeellllsssseeee _l_i_s_t or tttthhhheeeennnn _l_i_s_t is
executed, then the iiiiffff command returns a zero exit status.
wwwwhhhhiiiilllleeee _l_i_s_t ddddoooo _l_i_s_t ddddoooonnnneeee
A wwwwhhhhiiiilllleeee command repeatedly executes the wwwwhhhhiiiilllleeee _l_i_s_t and, if the
exit status of the last command in the list is zero, executes the
ddddoooo _l_i_s_t; otherwise the loop terminates. If no commands in the ddddoooo
_l_i_s_t are executed, then the wwwwhhhhiiiilllleeee command returns a zero exit
status; uuuunnnnttttiiiillll may be used in place of wwwwhhhhiiiilllleeee to negate the loop
termination test.
((((_l_i_s_t))))
Execute _l_i_s_t in a sub-shell. The shell creates a new environment
- 2 - Formatted: April 14, 1992
SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
in which to execute the _l_i_s_t, but does not fork a sub-shell as a
Unix system would. The original environment is restored on
completion.
{{{{ _l_i_s_t;;;; }}}}
_l_i_s_t is simply executed.
[[[[[[[[ _e_x_p_r_e_s_s_i_o_n ]]]]]]]]
Evaluates expression and returns a zero exit status when
expression is true. See CCCCoooonnnnddddiiiittttiiiioooonnnnaaaallll EEEExxxxpppprrrreeeessssssssiiiioooonnnnssss below, for a
description of expression. Note that [[[[[[[[ and ]]]]]]]] are keywords and
require blanks between them and expression.
ffffuuuunnnnccccttttiiiioooonnnn _n_a_m_e (((()))) {{{{ _l_i_s_t;;;; }}}}
_n_a_m_e (((()))) {{{{ _l_i_s_t;;;; }}}}
Define a function which is referenced by _n_a_m_e. The body of the
function is the _l_i_s_t of commands between {{{{ and }}}}. Execution of
functions is described below (see _E_x_e_c_u_t_i_o_n).
The following words are only recognized as the first word of a command
and when not quoted:
iiiiffff tttthhhheeeennnn eeeellllsssseeee eeeelllliiiiffff ffffiiii ccccaaaasssseeee eeeessssaaaacccc ffffoooorrrr wwwwhhhhiiiilllleeee uuuunnnnttttiiiillll ddddoooo ddddoooonnnneeee {{{{ }}}} [[[[[[[[ ]]]]]]]]
CCCCoooommmmmmmmeeeennnnttttssss
A word beginning with #### causes that word and all the following
characters up to a new-line to be ignored.
AAAAlllliiiiaaaassssiiiinnnngggg
The first word of each command is replaced by the text of an alias if
an alias for this word has been defined. The alias name must a valid
identifier. The replacement string can contain any valid Shell script
including the metacharacters listed above. The first word of each
command of the replaced text will not be tested for additional
aliases. If the last character of the alias value is a blank then the
word following the alias will also be checked for alias substitution.
Aliases can be used to redefine special builtin commands but cannot be
used to redefine the keywords listed above. Aliases can be created
and listed with the aaaalllliiiiaaaassss command and can be removed with the uuuunnnnaaaalllliiiiaaaassss
command.
Aliasing is performed when scripts are read, not while they are
executed. Therefore, for an alias to take effect the alias command
has to be executed before the command which references the alias is
read.
Aliases are frequently used as a short hand for full path names. An
option to the aliasing facility allows the value of the alias to be
automatically set to the full pathname of the corresponding command.
These aliases are called tracked aliases. The value of a tracked
- 3 - Formatted: April 14, 1992
SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
alias is defined the first time the corresponding command is looked up
and becomes undefined each time the PATH variable is reset. These
aliases remain tracked so that the next subsequent reference will
redefine the value.
CCCCoooonnnnddddiiiittttiiiioooonnnnaaaallll EEEExxxxpppprrrreeeessssssssiiiioooonnnnssss
A conditional expression is used with the [[[[[[[[ compound command to test
attributes of files and to compare strings. Word splitting and file
name generation are not performed on the words between [[[[[[[[ and ]]]]]]]].
Each expression can be constructed from one or more of the following
unary or binary expressions:
----aaaa _f_i_l_e True if _f_i_l_e exists.
----bbbb _f_i_l_e True if _f_i_l_e exists and is a block special file.
----cccc _f_i_l_e True if _f_i_l_e exists and is a character special file.
----dddd _f_i_l_e True if _f_i_l_e exists and is a directory.
----ffff _f_i_l_e True if _f_i_l_e exists and is a regular file.
----gggg _f_i_l_e True if _f_i_l_e exists and has its setgid bit set.
----hhhh _f_i_l_e True if _f_i_l_e exists and is a symbolic link.
----kkkk _f_i_l_e True if _f_i_l_e exists and has its sticky bit set.
----nnnn _s_t_r_i_n_g True if the length of _s_t_r_i_n_g is non-zero.
----oooo _o_p_t_i_o_n True if the _o_p_t_i_o_n named is on.
----pppp _f_i_l_e True if _f_i_l_e exists and is a fifo special file or a
pipe.
----rrrr _f_i_l_e True if _f_i_l_e exists and is readable.
----ssss _f_i_l_e True if _f_i_l_e exists and has a size greater than zero.
----tttt [ _f_i_l_d_e_s ]
True if the open file whose file descriptor number is
_f_i_l_d_e_s (1 by default) is associated with a terminal
device.
----uuuu _f_i_l_e True if _f_i_l_e exists and has its setuid bit set.
----wwww _f_i_l_e True if _f_i_l_e exists and is writable.
----xxxx _f_i_l_e True if _f_i_l_e exists and is executable. If _f_i_l_e
exists and is a directory, then the current process
has permission to search in the directory.
- 4 - Formatted: April 14, 1992
SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
----zzzz _s_t_r_i_n_g True if the length of _s_t_r_i_n_g is zero.
----LLLL _f_i_l_e True if _f_i_l_e exists and is a symbolic link.
----OOOO _f_i_l_e True if _f_i_l_e exists and is owned by the effective
user id of this process.
----GGGG _f_i_l_e True if _f_i_l_e exists and is owned by the effective
user group of this process.
----SSSS _f_i_l_e True if _f_i_l_e exists and is a socket.
_f_i_l_e_1 ----nnnntttt _f_i_l_e_2
True if file1 is newer than file2. True if _f_i_l_e_1
exists and is newer than _f_i_l_e_2.
_f_i_l_e_1 ----ooootttt _f_i_l_e_2
True if _f_i_l_e_1 exists and is older than _f_i_l_e_2.
_f_i_l_e_1 ----eeeeffff _f_i_l_e_2
True if _f_i_l_e_1 and _f_i_l_e_2 and refer to the same file.
_s_1 ==== _s_2 True if strings _s_1 and _s_2 are identical.
_s_1 !!!!==== _s_2 True if strings _s_1 and _s_2 are _n_o_t identical.
_s_1 <<<< _s_2 True if string _s_1 comes before _s_2 are based on the
ASCII value of their characters.
_s_1 >>>> _s_2 True if string _s_1 comes after _s_2 are based on the
ASCII value of their characters.
_n_1 ----eeeeqqqq _n_2 True if _n_1 is equal to _n_2.
_n_1 ----nnnneeee _n_2 True if _n_1 is not equal to _n_2.
_n_1 ----lllltttt _n_2 True if _n_1 is less than to _n_2.
_n_1 ----ggggtttt _n_2 True if _n_1 is greater than to _n_2.
_n_1 ----lllleeee _n_2 True if _n_1 is less than or equal to _n_2.
_n_1 ----ggggeeee _n_2 True if _n_1 is greater than or equal to _n_2.
Not all of the above have meaning under MSDOS or OS/2. In such cases,
the appropriate value is set (_f_a_l_s_e, except for ----OOOO and ----GGGG).
A compound expression can be constructed from these primitives by
using any of the following, listed in decreasing order of precedence.
- 5 - Formatted: April 14, 1992
SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
(((( _e_x_p_r ))))
True, if _e_x_p_r is true. Used to group expressions.
!!!! _e_x_p_r
True, if _e_x_p_r is false.
_e_x_p_r_1 &&&&&&&& _e_x_p_r_2
True, if _e_x_p_r_1 and _e_x_p_r_2 are both true.
_e_x_p_r_1 |||||||| _e_x_p_r_2
True, if _e_x_p_r_1 or _e_x_p_r_2 is true.
TTTTiiiillllddddeeee SSSSuuuubbbbssssttttiiiittttuuuuttttiiiioooonnnn
Each word is checked to see if it begins with an unquoted~~~~. If it is,
the ~~~~ is replaced by the value of the HHHHOOOOMMMMEEEE parameter. A ~~~~ followed by
a ++++ or ---- is replaced by the value of the parameter PPPPWWWWDDDD and OOOOLLLLDDDDPPPPWWWWDDDD
respectively.
CCCCoooommmmmmmmaaaannnndddd SSSSuuuubbbbssssttttiiiittttuuuuttttiiiioooonnnn
The standard output from a command enclosed in parenthesis preceded by
a dollar sign ($$$$(((())))), or in a pair of grave accents (````````) may be used as
part or all of a word; trailing new-lines are removed. The command
substitution $$$$((((ccccaaaatttt _f_i_l_e)))) can be replaced by the equivalent but faster
$$$$((((<<<<_f_i_l_e)))).
PPPPaaaarrrraaaammmmeeeetttteeeerrrr SSSSuuuubbbbssssttttiiiittttuuuuttttiiiioooonnnn
The character $$$$ is used to introduce substitutable _p_a_r_a_m_e_t_e_r_s. There
are two types of parameters, positional and keyword. If _p_a_r_a_m_e_t_e_r is
a digit, it is a positional parameter. Positional parameters may be
assigned values by sssseeeetttt. Keyword parameters (also known as variables)
may be assigned values by writing:
_n_a_m_e = _v_a_l_u_e [ _n_a_m_e = _v_a_l_u_e ] ...
Pattern-matching is not performed on _v_a_l_u_e. There cannot be a
function and a variable with the same _n_a_m_e.
Alternatively, named parameters can be assigned values and attributes
by using the typeset special command.
$$$${{{{_p_a_r_a_m_e_t_e_r}}}}
The value, if any, of the _p_a_r_a_m_e_t_e_r is substituted. The braces
are required only when _p_a_r_a_m_e_t_e_r is followed by a letter, digit,
or underscore that is not to be interpreted as part of its name.
If _p_a_r_a_m_e_t_e_r is **** or @@@@, all the positional parameters, starting
with $$$$1111, are substituted (separated by spaces). Parameter $$$$0000 is
set from argument zero when the shell is invoked.
$$$${{{{####_p_a_r_a_m_e_t_e_r}}}}
If _p_a_r_a_m_e_t_e_r is **** or @@@@, the number of positional parameters is
substituted. Otherwise, the length of the value of the _p_a_r_a_m_e_t_e_r
- 6 - Formatted: April 14, 1992
SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
is substituted.
$$$${{{{_p_a_r_a_m_e_t_e_r::::----_w_o_r_d}}}}
If _p_a_r_a_m_e_t_e_r is set and is non-null, substitute its value;
otherwise substitute _w_o_r_d.
$$$${{{{_p_a_r_a_m_e_t_e_r::::====_w_o_r_d}}}}
If _p_a_r_a_m_e_t_e_r is not set or is null set it to _w_o_r_d; the value of
the parameter is substituted. Positional parameters may not be
assigned to in this way.
$$$${{{{_p_a_r_a_m_e_t_e_r::::????_w_o_r_d}}}}
If _p_a_r_a_m_e_t_e_r is set and is non-null, substitute its value;
otherwise, print _w_o_r_d and exit from the shell. If _w_o_r_d is
omitted, the message ``parameter null or not set'' is printed.
$$$${{{{_p_a_r_a_m_e_t_e_r::::++++_w_o_r_d}}}}
If _p_a_r_a_m_e_t_e_r is set and is non-null, substitute _w_o_r_d; otherwise
substitute nothing.
$$$${{{{_p_a_r_a_m_e_t_e_r####_p_a_t_t_e_r_n}}}}
$$$${{{{_p_a_r_a_m_e_t_e_r########_p_a_t_t_e_r_n}}}} If the Shell _p_a_t_t_e_r_n matches the beginning
of the value of _p_a_r_a_m_e_t_e_r, then the value of this substitution is
the value of the _p_a_r_a_m_e_t_e_r with the matched portion deleted;
otherwise the value of this _p_a_r_a_m_e_t_e_r is substituted. In the
first form the smallest matching _p_a_t_t_e_r_n is deleted and in the
latter form the largest matching _p_a_t_t_e_r_n is deleted.
$$$${{{{_p_a_r_a_m_e_t_e_r%%%%_p_a_t_t_e_r_n}}}}
$$$${{{{_p_a_r_a_m_e_t_e_r%%%%%%%%_p_a_t_t_e_r_n}}}} If the Shell _p_a_t_t_e_r_n matches the end of the
value of _p_a_r_a_m_e_t_e_r, then the value of this substitution is the
value of the _p_a_r_a_m_e_t_e_r with the matched portion deleted;
otherwise the value of this _p_a_r_a_m_e_t_e_r is substituted. In the
first form the smallest matching _p_a_t_t_e_r_n is deleted and in the
latter form the largest matching _p_a_t_t_e_r_n is deleted.
In the above, _w_o_r_d is not evaluated unless it is to be used as the
substituted string, so that, in the following example, ppppwwwwdddd is executed
only if dddd is not set or is null:
echo ${d:-`pwd`}
If the colon (::::) is omitted from the above expressions, the shell only
checks whether _p_a_r_a_m_e_t_e_r is set or not (_I_t _i_s _n_o_t _c_l_e_a_r _w_h_a_t _t_h_i_s
_m_e_a_n_s).
The following parameters are automatically set by the shell:
#### The number of positional parameters in decimal.
- 7 - Formatted: April 14, 1992
SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
---- Flags supplied to the shell on invocation or by the sssseeeetttt
command.
???? The decimal value returned by the last synchronously
executed command.
$$$$ The process number of this shell.
!!!! The process number of the last background command invoked.
____ The last argument of the previous command.
~~~~ The shell reserves all variables beginning with a ~~~~ for its
own internal use and these variables cannot be accessed by
the user.
The following parameters are used by the shell:
CCCCDDDDPPPPAAAATTTTHHHH
The search path for the _c_d command. (Note that because a
colon is used by MSDOS to indicate a drive, a semi-colon is
used to separate the path names instead of a colon - this
implies that the CDPATH variable must be set using single or
double quotes to surround the value).
CCCCOOOOLLLLUUUUMMMMNNNNSSSS
This variable is contains the number of columns on the
screen. Currently, the shell only sets the variable in
interactive mode, if it is not already set.
CCCCOOOOMMMMSSSSPPPPEEEECCCC
When the shell has to process an MSDOS ._b_a_t or OS/2 ._c_m_d
file, it expects the file indicated by the value of this
environment variable to be an executable program capable of
processing the MSDOS ._b_a_t or OS/2 ._c_m_d file. The program is
invoked with the arguments ////cccc ffffiiiilllleeee____nnnnaaaammmmeeee.
EEEENNNNVVVV If this parameter is set, then parameter substitution is
performed on the value to generate the pathname of the
script that will be executed when the shell is invoked (See
Invocation below). This file is typically used for alias
and function definitions.
EEEEXXXXTTTTEEEENNNNDDDDEEEEDDDD____LLLLIIIINNNNEEEE
This parameter pointers to a file which contains information
for the shell about how command lines are to be built for
particular external programs and how to convert from the
format entered to the shell (see _C_o_m_m_a_n_d _L_i_n_e _B_u_i_l_d_i_n_g).
FFFFCCCCEEEEDDDDIIIITTTT
The default editor name for the fc command.
- 8 - Formatted: April 14, 1992
SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
HHHHIIIISSSSTTTTFFFFIIIILLLLEEEE
The file where command history is saved across login
sessions. The default value is $$$$HHHHOOOOMMMMEEEE////hhhhiiiissssttttoooorrrryyyy....sssshhhh.
HHHHOOOOMMMMEEEE The default argument (home directory) for the _c_d command.
IIIIFFFFSSSS Internal field separators, normally ssssppppaaaacccceeee, ttttaaaabbbb, and nnnneeeewwww----
lllliiiinnnneeee.
LLLLIIIINNNNEEEESSSS
This variable is contains the number of lines on the screen.
Currently, the shell only sets the variable in interactive
mode, if it is not already set.
MMMMAAAAIIIILLLL If this parameter is set to the name of a mail file _a_n_d the
MMMMAAAAIIIILLLLPPPPAAAATTTTHHHH parameter is not set, the shell informs the user of
the arrival of mail in the specified file.
MMMMAAAAIIIILLLLCCCCHHHHEEEECCCCKKKK
This parameter specifies how often (in seconds) the shell
will check for the arrival of mail in the files specified by
the MMMMAAAAIIIILLLLPPPPAAAATTTTHHHH or MMMMAAAAIIIILLLL parameters. If set to 0, the shell
will check before each prompt.
MMMMAAAAIIIILLLLPPPPAAAATTTTHHHH
A semi-colon (;;;;) separated list of file names. If this
parameter is set, the shell informs the user of the arrival
of mail in any of the specified files. Each file name can be
followed by %%%% and a message that will be printed when the
modification time changes. The default message is "_y_o_u _h_a_v_e
_m_a_i_l".
OOOOLLLLDDDDPPPPWWWWDDDD
The previous working directory set by the ccccdddd command.
PPPPAAAATTTTHHHH The search path for commands (see _E_x_e_c_u_t_i_o_n below). The
user may not change PPPPAAAATTTTHHHH if executing under _r_s_h. (Note that
because a colon is used by MSDOS to indicate a drive, a
semi-colon is used to separate the path names instead of a
colon - this implies that the PATH variable must be set
using single or double quotes to surround the value). The
Shell automatically converts Unix format PPPPAAAATTTTHHHH assignments to
MSDOS format when appropriate. A assignment is converted if
there are no semi-colons, no \\\\s and one or more colons. If
there is only one colon, it must not be the second character
of the new value.
PPPPWWWWDDDD The present working directory set by the ccccdddd command.
PPPPSSSS1111 Primary prompt string, by default ``$$$$ ''.
- 9 - Formatted: April 14, 1992
SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
PPPPSSSS2222 Secondary prompt string, by default ``>>>> ''.
PPPPSSSS3333 Selection prompt string used within a select loop, ``####???? ''.
PPPPSSSS4444 The value of this parameter is expanded for parameter
substitution and precedes each line of an execution trace.
If omitted, the execution trace prompt is ``+ ''.
RRRRAAAANNNNDDDDOOOOMMMM
Each time this parameter is referenced, a random integer is
generated. The sequence of random numbers can be
initialized by assigning a numeric value to RRRRAAAANNNNDDDDOOOOMMMM.
RRRREEEEPPPPLLLLYYYY
This parameter is set by the sssseeeelllleeeecccctttt ssssttttaaaatttteeeemmmmeeeennnntttt aaaannnndddd bbbbyyyy tttthhhheeee
rrrreeeeaaaadddd special command when no arguments are supplied.
SSSSEEEECCCCOOOONNNNDDDDSSSS
Each time this parameter is referenced, the number of
seconds since shell invocation is returned. If this
parameter is assigned a value, then the value returned upon
reference will be the value that was assigned plus the
number of seconds since the assignment.
SSSSHHHHEEEELLLLLLLL
When the shell is invoked, it scans the environment (see
_E_n_v_i_r_o_n_m_e_n_t below) for this name. If it is found and there
is an 'r' in the file name part of its value, the shell
becomes a restricted shell. The shell also uses this
variable to decide which program to spawn to interpret shell
scripts (see _E_x_e_c_u_t_i_o_n below).
TTTTMMMMPPPP The location of temporary files created by the shell. If
this variable is not defined, the Shell uses the HHHHOOOOMMMMEEEE
directory for temporary files. Failing that, the root
directory of the current drive is used.
The shell gives default values to PPPPAAAATTTTHHHH, PPPPSSSS1111, PPPPSSSS2222, SSSSHHHHEEEELLLLLLLL, HHHHOOOOMMMMEEEE and IIIIFFFFSSSS.
AAAArrrriiiitttthhhhmmmmeeeettttiiiicccc EEEExxxxppppaaaannnnssssiiiioooonnnn
A string of the form $$$$((((((((_e_x_p)))))))) is substitued with the value of the
arithemtic expression _e_x_p. _e_x_p is treated as if it were within single
quotes. See AAAArrrriiiitttthhhhmmmmeeeettttiiiicccc EEEEvvvvaaaalllluuuuaaaattttiiiioooonnnn below.
BBBBllllaaaannnnkkkk IIIInnnntttteeeerrrrpppprrrreeeettttaaaattttiiiioooonnnn
After parameter and command substitution, the results of substitution
are scanned for internal field separator characters (those found in
IIIIFFFFSSSS) and split into distinct arguments where such characters are
found. Explicit null arguments ("""""""" or '''''''') are retained. Implicit
null arguments (those resulting from _p_a_r_a_m_e_t_e_r_s that have no values)
are removed.
- 10 - Formatted: April 14, 1992
SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
FFFFiiiilllleeee NNNNaaaammmmeeee GGGGeeeennnneeeerrrraaaattttiiiioooonnnn
Following substitution, each command _w_o_r_d is scanned for the
characters ****, ???? and [[[[. If one of these characters appears the word is
regarded as a _p_a_t_t_e_r_n. The word is replaced with alphabetically
sorted file names that match the pattern. If no file name is found
that matches the pattern, the word is left unchanged. The character ....
at the start of a file name or immediately following a ////, as well as
the character //// itself, must be matched explicitly. When matching
patterns for file names, the shell ignores the case of the pattern and
the file directory entries. Generated file names are always in lower
case (for FAT file systems). Under HPFS on OS/2, case is preserved.
**** Matches any string, including the null string.
???? Matches any single character.
[[[[ ............ ]]]]
Matches any one of the enclosed characters. A pair of
characters separated by ---- matches any character lexically
between the pair, inclusive. If the first character
following the opening ``['' is a ````````!!!!'''''''' any character not
enclosed is matched.
If the shell has to open or create the file ////ddddeeeevvvv////ttttttttyyyy or ////ddddeeeevvvv////nnnnuuuullllllll
(which are Unix special files), they are converted to the equivalent
MSDOS file names (////ddddeeeevvvv////ccccoooonnnn and ////ddddeeeevvvv////nnnnuuuullll respectively). Any user
programs which could expect ////ddddeeeevvvv////ttttttttyyyy or ////ddddeeeevvvv////nnnnuuuullllllll as arguments must do
its own mapping to the MSDOS equivalents.
QQQQuuuuoooottttiiiinnnngggg
The following characters have a special meaning to the shell and cause
termination of a word unless quoted:
;;;; &&&& (((( )))) |||| ^^^^ <<<< >>>> nnnneeeewwww----lllliiiinnnneeee ssssppppaaaacccceeee ttttaaaabbbb
A character may be _q_u_o_t_e_d (i.e., made to stand for itself) by
preceding it with a \\\\. The pair \\\\nnnneeeewwww----lllliiiinnnneeee is ignored. All characters
enclosed between a pair of single quote marks (''''''''), except a single
quote, are quoted. Inside double quote marks (""""""""), parameter and
command substitution occurs and \\\\ quotes the characters \\\\, ````, """", and
$$$$. """"$$$$****"""" is equivalent to """"$$$$1111 $$$$2222 ............"""", whereas """"$$$$@@@@"""" is equivalent to
""""$$$$1111"""" """"$$$$2222"""" .............
AAAArrrriiiitttthhhhmmmmeeeettttiiiicccc EEEEvvvvaaaalllluuuuaaaattttiiiioooonnnn
An ability to perform integer arithmetic is provided with the special
command lllleeeetttt. Evaluations are performed using _l_o_n_g arithmetic.
Constants are of the form [_b_a_s_e]_n where _b_a_s_e is a decimal number
between two and thirty-six representing the arithmetic base and _n is a
number in that base. If [_b_a_s_e] is omitted then base 10 is used.
- 11 - Formatted: April 14, 1992
SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
An arithmetic expression uses nearly the same syntax precedence, and
associatively of expression as C. The following set of operators,
listed in order of decreasing precedence, have been implemented:
- + ! ~ ++ -- unary minus/plus, logical NOT,
complement, {pre, post}{in,de}crement
& Logical AND
^ Logical XOR
| Logical OR
* / % multiplication, division, remainder
+ - addition, subtraction
<< >> Logical shift left and right
<= >= < > comparison
== != equality inequality
&& Logical AND
|| ^^ Logical OR, XOR
? : Ternary operator
= += -= *= /= assignement
%= &= ^= |= <<=
>>= &&= ||= ^^=
The operators &&&&&&&&, ||||||||, &&&&&&&&==== and ||||||||==== are short-circuiting and only one of
the latter two expressions in a ternary operator is evaluated. Note
the precedence of the logical AND, XOR and OR operators.
Sub-expressions in parentheses () are evaluated first and can be used
to override the above precedence rules.
Named parameters can be reference by name within an expression without
using the parameter substitution symtax.
Since many of the arithmetic operators require quoting, an alternative
form of the lllleeeetttt command is provided. For any command which begins
with a ((((((((, all the characters until a matching )))))))) are treated as a
quoted expression. More precisely, ((((((((............)))))))) is equivalent to lllleeeetttt
""""............"""".
PPPPrrrroooommmmppppttttiiiinnnngggg
When used interactively, the shell prompts with the value of PPPPSSSS1111
before reading a command. If at any time a new-line is typed and
further input is needed to complete a command, the secondary prompt
(i.e., the value of PPPPSSSS2222) is issued.
Many people like to have the shell provide them with useful
information in their prompt. To accommodate this, the shell
recognises special sequences of characters in the values of PPPPSSSS1111 and
PPPPSSSS2222, and substitutes the appropriate information for them. The
special sequences and what they signify are:
%%%%dddd Place the current date, in the form DAY DD-MM-YY into the
prompt.
- 12 - Formatted: April 14, 1992
SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
%%%%eeee Place the current event number (as defined by the hhhhiiiissssttttoooorrrryyyy
command) into the prompt. If history evaluation has been
turned off (via hhhhiiiissssttttoooorrrryyyy ----dddd), no number will be substituted
in (i.e. the %%%%eeee will be removed).
%%%%nnnn Place the current working drive into the prompt.
%%%%pppp Place the current working directory into the prompt.
%%%%tttt Place the current time of day, in the form HH:MM into the
prompt. The time is on a 24 hour clock, i.e. 1:30 in the
afternoon will be 13:30.
%%%%vvvv Place the MSDOS version number, in the form MSDOS MM:MM
into the prompt.
%%%%%%%% Place the character % into the prompt.
\\\\xxxxxxxxxxxx Place the character _\_x_x_x into the prompt. The processing of
escape sequences is the same as that for eeeecccchhhhoooo.
Some of these facilities are of more use than others.
IIIInnnnppppuuuutttt////OOOOuuuuttttppppuuuutttt
Before a command is executed, its input and output may be redirected
using a special notation interpreted by the shell. The following may
appear anywhere in a simple-command or may precede or follow a _c_o_m_m_a_n_d
and are _n_o_t passed on to the invoked command; substitution occurs
before _w_o_r_d or _d_i_g_i_t is used:
<<<<wwwwoooorrrrdddd Use file _w_o_r_d as standard input (file descriptor 0).
>>>>wwwwoooorrrrdddd Use file _w_o_r_d as standard output (file descriptor 1).
If the file does not exist it is created; otherwise, it
is truncated to zero length.
>>>>>>>>wwwwoooorrrrdddd Use file _w_o_r_d as standard output. If the file exists
output is appended to it (by first seeking to the end-
of-file); otherwise, the file is created.
<<<<<<<<[----]wwwwoooorrrrdddd The shell input is read up to a line that is the same as
_w_o_r_d, or to an end-of-file. The resulting document
becomes the standard input. If any character of _w_o_r_d is
quoted, no interpretation is placed upon the characters
of the document; otherwise, parameter and command
substitution occurs, (unescaped) \\\\nnnneeeewwww----lllliiiinnnneeee is ignored,
and \\\\ must be used to quote the characters \\\\, $$$$, ````, and
the first character of _w_o_r_d. If ---- is appended to <<<<<<<<,
all leading tabs are stripped from _w_o_r_d and from the
document.
- 13 - Formatted: April 14, 1992
SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
<<<<&&&&ddddiiiiggggiiiitttt Use the file associated with file descriptor _d_i_g_i_t as
standard input. Similarly for the standard output using
>>>>&&&&ddddiiiiggggiiiitttt.
<<<<&&&&---- The standard input is closed. Similarly for the
standard output using >>>>&&&&----.
nnnn<<<<>>>>wwwwoooorrrrdddd causes the file _w_o_r_d to be opened on file descriptor _n
for both reading and writing. The file must already
exist.
If any of the above is preceded by a digit, the file descriptor which
will be associated with the file is that specified by the digit
(instead of the default 0 or 1). For example:
... 2>&1
associates file descriptor 2 with the file currently associated with
file descriptor 1.
The order in which redirections are specified is significant. The
shell evaluates redirections left-to-right. For example:
... 1>_x_x_x 2>&1
first associates file descriptor 1 with file _x_x_x. It associates file
descriptor 2 with the file associated with file descriptor 1 (i.e.
_x_x_x). If the order of redirections were reversed, file descriptor 2
would be associated with the terminal (assuming file descriptor 1 had
been) and file descriptor 1 would be associated with file _x_x_x .
The environment for the execution of a command contains the file
descriptors of the invoking shell as modified by input/output
specifications.
Redirection of output is not allowed in the restricted shell.
EEEEnnnnvvvviiiirrrroooonnnnmmmmeeeennnntttt
The _e_n_v_i_r_o_n_m_e_n_t (see _e_n_v_i_r_o_n(5)) is a list of name-value pairs that is
passed to an executed program in the same way as a normal argument
list. The shell interacts with the environment in several ways. On
invocation, the shell scans the environment and creates a parameter
for each name found, giving it the corresponding value. If the user
modifies the value of any of these parameters or creates new
parameters, none of these affects the environment unless the eeeexxxxppppoooorrrrtttt
command is used to bind the shell's parameter to the environment (see
also sssseeeetttt ----aaaa). A parameter may be removed from the environment with
the uuuunnnnsssseeeetttt command. The environment seen by any executed command is
thus composed of any unmodified name-value pairs originally inherited
by the shell, minus any pairs removed by uuuunnnnsssseeeetttt, plus any modifications
or additions, all of which must be noted in eeeexxxxppppoooorrrrtttt commands.
- 14 - Formatted: April 14, 1992
SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
The environment for any _s_i_m_p_l_e-_c_o_m_m_a_n_d may be augmented by prefixing
it with one or more assignments to parameters. Thus:
TERM=450 cmd args and
(export TERM; TERM=450; cmd args)
are equivalent (as far as the execution of _c_m_d is concerned).
If the ----kkkk flag is set, _a_l_l keyword arguments are placed in the
environment, even if they occur after the command name. The following
first prints aaaa====bbbb cccc and cccc:
echo a=b c
set -k
echo a=b c
SSSSiiiiggggnnnnaaaallllssss
The INTERRUPT and QUIT signals for an invoked command are ignored if
the command is followed by &&&&; otherwise signals have the values
inherited by the shell from its parent, with the exception of signal
11 (but see also the ttttrrrraaaapppp command below).
CCCCoooommmmmmmmaaaannnndddd RRRReeee----eeeennnnttttrrrryyyy
The text of the last 100 commands entered from a terminal device is
saved in a _h_i_s_t_o_r_y file. The file $$$$HHHHOOOOMMMMEEEE////hhhhiiiissssttttoooorrrryyyy....sssshhhh is used if the
HHHHIIIISSSSTTTTFFFFIIIILLLLEEEE variable is not set. The special command ffffcccc is used to list
or edit a portion of this file. The portion of the file to be edited
or listed can be selected by number or by giving the first character
or characters of the command. A single command or range of commands
can be specified. If you do not specify an editor program as an
argument to ffffcccc, the value of the parameter FFFFCCCCEEEEDDDDIIIITTTT is used. The edited
command is printed and re-executed upon leaving the editor. The
editor name ---- is used to skip the editing phase and to re-execute the
command. In this case a substitution parameter of the form _o_l_d====_n_e_w
can be used to modify the command before execution. For example, if rrrr
is aliased to ````ffffcccc ----eeee ----'''', typing `rrrr bbbbaaaadddd====ggggoooooooodddd cccc' re-executes the most
recent command that starts with the letter cccc and replaces the first
occurrence of the string bbbbaaaadddd with the string ggggoooooooodddd.
HHHHiiiissssttttoooorrrryyyy
When reading input from an interactive terminal, a ``!'' at the start
of a line signals to the shell that it should attempt to perform a
history subsitution. A history subsitution is a short-hand method
which allows the user to recall a previous command for execution or
editing. The recalled command is placed in the command line for
editing or passing to the rest of the shell for normal processing. A
history substitution takes the form:
!!!! [ ! | _s_t_r | _n_u_m ] _t_e_r_m_i_n_a_t_o_r
- 15 - Formatted: April 14, 1992
SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
!!!!!!!! will place the previous command in the command line. !!!!_n_u_m will
place the history command with the specified number in the command
line. !!!!_s_t_r will find the most recent command line that started with
the characters in _s_t_r.
The _t_e_r_m_i_n_a_t_o_r determines what action is performed after the history
line has been found. If the original history command is entered using
the <<<<rrrreeeettttuuuurrrrnnnn>>>> key, the new command line is passed directly to the
shell. If the <<<<eeeennnndddd>>>> key is pressed, the new command line can be
edited in the manner described below.
CCCCoooommmmmmmmaaaannnndddd LLLLiiiinnnneeee EEEEddddiiiittttiiiinnnngggg
When reading input from an interactive terminal, certain keystrokes
allow the current input line to be edited. The following keystrokes
corresponding to the following functions are defined in the
initialisation file sssshhhh....iiiinnnniiii. The keywords in the initialisation file
which provide the functions are listed below:
RRRRiiiigggghhhhtttt
Move the cursor right one character
WWWWoooorrrrddddRRRRiiiigggghhhhtttt
Move the cursor right one word
LLLLeeeefffftttt Move the cursor left one character
WWWWoooorrrrddddLLLLeeeefffftttt
Move the cursor left one word
PPPPrrrreeeevvvviiiioooouuuussss
Get the previous command from the history file
NNNNeeeexxxxtttt Get the next command from the history file
IIIInnnnsssseeeerrrrtttt
Toggle insert/overwrite mode (note the shape of the cursor
changes to indicate the current mode)
DDDDeeeelllleeeetttteeeeRRRRiiiigggghhhhtttt
Delete the current character unless the cursor is at the end of
line when no action is taken
SSSSttttaaaarrrrtttt
Move the cursor to the start of the command
CCCCoooommmmpppplllleeeetttteeee
Attempt to complete the filename. The shell attempts to complete
the file name at the current cursor position. The file name is
delimited by white space characters. If the shell is unable to
complete the file name (ie no match can be found in the
appropriate directory), the bell is rung. If a single match is
- 16 - Formatted: April 14, 1992
SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
found, the new file name is displayed. If multiple matches are
found, the file name is replaced by the longest non-unique part
of the file name and the bell is rung.
EEEEnnnndddd Move the cursor to the end of the command, unless the first
character of the command is a !!!!, in which case the appropriate
history search is done. The cursor is placed at the end of the
command line.
FFFFlllluuuusssshhhh
Delete to the end of the line
SSSSccccaaaannnnBBBBaaaacccckkkkwwwwaaaarrrrdddd
Search backwards from the current history command for the next
match against the last history request or the string currently in
the command line if there has been no previous history request.
SSSSccccaaaannnnFFFFoooorrrreeeewwwwaaaarrrrdddd
Search forewards from the current history command for the next
match against the last history request or the string currently in
the command line if there has been no previous history request.
CCCClllleeeeaaaarrrr
Erase the complete line.
DDDDiiiirrrreeeeccccttttoooorrrryyyy
Display the file name list matching the partially entered file
name under the cursor. If no matches are found the bell is rung.
To display the whole directory, enter the directory name followed
by a slash ////. After the directory listing has been displayed,
the entered command line is redisplayed.
DDDDeeeelllleeeetttteeeeLLLLeeeefffftttt
Delete the character to the left of the cursor.
RRRReeeettttuuuurrrrnnnn
Execute the command line, unless the first character of the
command is a !!!!, in which case the appropriate history processing
is done. _T_h_i_s _i_s _t_h_e _a_c_t_u_a_l _k_e_y _p_r_e_s_s_e_d _a_n_d _c_a_n_n_o_t _b_e _m_o_d_i_f_i_e_d
_b_y _t_h_e _i_n_i_t_i_a_l_i_s_a_t_i_o_n _f_i_l_e.
IIIInnnniiiittttiiiiaaaalllliiiissssaaaattttiiiioooonnnn FFFFiiiilllleeee
When the shell is run in interactive mode, the Command Line Editing
keys and other user configuration parameters are read from the
initialisation file _s_h._i_n_i. This shell looks for this file in the
same directory as the sssshhhh executable which is running. It does not use
the SSSSHHHHEEEELLLLLLLL environment variable or search the directories in the PPPPAAAATTTTHHHH
environment variable. At present, there are two types of entry in
this file: keyboard configuration; and others. The entry is contained
in a single line and consists of a keyword (in upper or lower case),
white space, an equals symbols, white space and one or two numeric
- 17 - Formatted: April 14, 1992
SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
values (see _s_t_r_t_o_l for valid formats where _b_a_s_e parameter is zero),
followed by an end of line character.
For the keyboard entries, the numeric values give the MSDOS Function 8
(Console Input without Echo) return values for that entry. Note that
extended codes (function keys) require two calls to this function.
The first call returns zero and the second the extended code. In the
configuration file, a first numeric value of zero indicates a extended
code and must be followed by a second value. A non-zero first numeric
value must not be followed by anything else on the line.
Other entries must only have one numeric value. A zero value disables
the function and a non-zero value enables the function. At present,
there are two other functions:
BBBBeeeellllllll Enable/disable warning bells
HHHHaaaallllffffHHHHeeeeiiiigggghhhhtttt
Use full or halfheight block cursor to indicate Insert mode
IIIInnnnsssseeeerrrrttttMMMMooooddddeeee
Set the default insert mode on or off
IIIInnnnsssseeeerrrrttttCCCCuuuurrrrssssoooorrrr
Enable/disable the insert mode cursor.
Invalid lines or lines beginning with a #### are ignored.
The following table gives the list of valid keywords and their default
values:
- 18 - Formatted: April 14, 1992
SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
_________________________________________________________________________
Keyword First numeric Second numeric Actual Key
_________________________________________________________________________
KEYBOARD ENTRIES
ScanBackward 0 0x49 PAGE UP
ScanForeward 0 0x51 PAGE DOWN
Previous 0 0x48 UP ARROW
Next 0 0x50 DOWN ARROW
Left 0 0x4b LEFT ARROW
Right 0 0x4d RIGHT ARROW
WordRight 0 0x74 Control RIGHT ARROW
WordLeft 0 0x73 Control LEFT ARROW
Start 0 0x47 HOME
Clear 0 0x76 Control PAGE DOWN
Flush 0 0x75 Control END
End 0 0x4f END
Insert 0 0x52 INSERT
DeleteRight 0 0x53 DELETE
DeleteLeft 0x08 BACKSPACE
Complete 0 0x77 Control HOME
Directory 0 0x0f Shift TAB
_________________________________________________________________________
OTHER FUNCTIONS
Bell 0
HalfHeight 0
InsertMode 0
InsertCursor 1
_________________________________________________________________________
EEEExxxxeeeeccccuuuuttttiiiioooonnnn
Each time a command is executed, the above substitutions are carried
out. If the command name matches one of the _S_p_e_c_i_a_l _C_o_m_m_a_n_d_s listed
below, it is executed in the shell process. If the command name does
not match a _S_p_e_c_i_a_l _C_o_m_m_a_n_d, but matches the name of a defined
function, the function is executed in the shell process (note how this
differs from the execution of shell procedures). The positional
parameters $$$$1111, $$$$2222, .... are set to the arguments of the function. If
the command name matches neither a _S_p_e_c_i_a_l _C_o_m_m_a_n_d nor the name of a
defined function, a new process is created and an attempt is made to
execute the command via _e_x_e_c(2).
The shell parameter PPPPAAAATTTTHHHH defines the search path for the directory
containing the command. Alternative directory names are separated by
a semi-colon (;;;;). The default path is ;;;;cccc::::////bbbbiiiinnnn;;;;cccc::::////uuuussssrrrr////bbbbiiiinnnn (specifying
the current directory, cccc::::////bbbbiiiinnnn, and cccc::::////uuuussssrrrr////bbbbiiiinnnn, in that order). Note
that the current directory is specified by a null path name, which can
appear immediately after the equal sign or between the semi-colon
delimiters anywhere else in the path list. If the command name
contains a //// or starts with xxxx:::: (where x is a drive letter) the search
path is not used; such commands will not be executed by the restricted
shell. Otherwise, each directory in the path is searched for an
executable file. Executable files are indicated by a .exe or .com
extension. This extension is automatically supplied by the shell and
- 19 - Formatted: April 14, 1992
SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
not have to be entered by the user.
If the file with a .com or .exe extension cannot be found in the
directory, the file is opened and first 512 characters are read. If
there are no characters in the block with a value in the range 0 to 7,
the file is assumed to be a script file containing shell commands.
Note that the shell will check the file and if that file does not
exist or is not a script, it will try the file with an extension of
....sssshhhh. If a ....sssshhhh file is found, that will be processed. A sub-shell
(given by the environment variable SSSSHHHHEEEELLLLLLLL) is spawned to read it.
If the script file starts with the a line of the form #! _i_n_t_e_r_p_r_e_t_e_r
[_a_r_g_u_m_e_n_t_s], the interpreter is invoked instead of the shell to
process the script. Optional arguments can be supplied in the script
file which are passed before the name of the script file. Thus, if
the file _d_e_m_o contained the following string as the first line
#! perl -sP
Entering _d_e_m_o _n_a_m_e would be equivalent to entering the _p_e_r_l -_s_P _n_a_m_e
at the command prompt. Note that no other processing of the first
line other that the separation (by white space) into arguments is
done.
If none of the above conditions for a executable file are detected and
a file with a .bat extension exists in the directory, the command
processor given by the CCCCOOOOMMMMSSSSPPPPEEEECCCC environment variable is spawned to
process the file. This is normally the standard MSDOS _c_o_m_m_a_n_d._c_o_m or
OS/2 _c_m_d._e_x_e processor.
A parenthesized command is also executed in a sub-shell.
CCCCoooommmmmmmmaaaannnndddd LLLLiiiinnnneeee BBBBuuuuiiiillllddddiiiinnnngggg
The file pointed to by the EEEEXXXXTTTTEEEENNNNDDDDEEEEDDDD____LLLLIIIINNNNEEEE parameter contains
information which instructs the shell on how to create the command
line for a particular program from the information entered to the
shell. If the program name is not found in this file, the standard
MSDOS or OS/2 mechanisms are used with no special processing.
The file is scanned prior to the execution of an external command. An
entry in this file is contained in a single line and consists of a
program name (in upper or lower case), white space, an equals symbol,
white space and the program type followed by up to four optional
values, followed by an end of line character. The vvvvaaaalllluuuueeee tells the
shell how to build the command line and the optional values provide
additional information. The valid pppprrrrooooggggrrrraaaammmm ttttyyyyppppeeeessss are (note that
invalid entries cause a line to be ignored) given below. These
pppprrrrooooggggrrrraaaammmm ttttyyyyppppeeeessss must appear as the first value following the _e_q_u_a_l_s.
Otherwise, they are ignored. An empty pppprrrrooooggggrrrraaaammmm ttttyyyyppppeeeessss may be empty to
only select one or more of the optional values.
- 20 - Formatted: April 14, 1992
SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
uuuunnnniiiixxxx This program can process the command line using the indirect
command file character @@@@. When a program, which can process
this format, finds a command line parameter starting with a
@@@@ in the command line, it treats the rest of the parameter
as a file and reads the command line parameters from that
file (one per line, the end of line characters can be
escaped by preceeding with a \\\\). Examples of this
functionality include the Standard LLLLiiiinnnnkkkkeeeerrrr and LLLLiiiibbbbrrrraaaarrrriiiiaaaannnn.
The file name is set up in UNIX format (using //// as the
directory separators).
This functionality allows the user to get round the 127 byte
command line length limit of MSDOS. A sample version of the
code to process wild cards and indirect command files is
included with the source of the shell in the file _s_t_d_a_r_g_v._c.
ddddoooossss This program can process the command line using the indirect
command file character @@@@. The file name is set up in DOS
format (using \\\\s as the directory separators).
eeeennnnvvvviiiirrrroooonnnn
The command line is passed to the external program in the
environment variable specified by the first optional value.
The optional second value which is numeric, gives the
parameter separator character to be used (see _s_t_r_t_o_l for
valid formats where _b_a_s_e parameter is zero). If this second
value is missing or evaluates to zero, space is used.
The following optional values described below may be used after either
uuuunnnniiiixxxx or ddddoooossss or by themselves:
sssswwwwiiiittttcccchhhh
The optional value sssswwwwiiiittttcccchhhh causes the program parameters to
be converted from UUUUNNNNIIIIXXXX format to MMMMSSSSDDDDOOOOSSSS format. This means
that parameters beginning with an ---- have it converted to a
////. For all other parameters, ////s are converted to \\\\s. This
option is not applied to quoted parameters or escaped
characters.
This functionality allows ease of entry of MSDOS commands
which expect MSDOS directory separators which the shell
interpretes as the escape character (not that the underlying
MSDOS really cares). eeeexxxxppppoooorrrrtttt The optional value eeeexxxxppppoooorrrrtttt
causes the marked environment variables to be converted from
UUUUNNNNIIIIXXXX format to MMMMSSSSDDDDOOOOSSSS format. This is equivalent to setting
the -m flag for this program only.
nnnnooooeeeexxxxppppaaaannnndddd
The optional value nnnnooooeeeexxxxppppaaaannnndddd disables file name generation
when building the command line (also see sssseeeetttt command).
- 21 - Formatted: April 14, 1992
SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
nnnnoooosssswwwwaaaapppp
The optional value nnnnoooosssswwwwaaaapppp disables swapping for the command.
This may speed up the execution of small commands.
FFFFuuuunnnnccccttttiiiioooonnnnssss
The ffffuuuunnnnccccttttiiiioooonnnn _k_e_y_w_o_r_d, _d_e_s_c_r_i_b_e_d _i_n _t_h_e CCCCoooommmmmmmmaaaannnnddddssss section above, is used
to define shell functions. Shell functions are read in and stored
internally. Alias names are resolved when the function is read.
Functions are executed like commands with the arguments passed as
positional parameters. (See EEEExxxxeeeeccccuuuuttttiiiioooonnnn above).
Functions execute in the same process as the caller and share all
files and present working directory with the caller. Traps caught by
the caller are reset to their default action inside the function. A
trap condition that is not caught or ignored by the function causes
the function to terminate and the condition to be passed on to the
caller. A trap set on EXIT inside a function is executed after the
function completes.
Ordinarily, variables are shared between the calling program and the
function. However, the ttttyyyyppppeeeesssseeeetttt special command used within a function
defines local variables whose scope includes the current function and
all functions it calls.
The special command rrrreeeettttuuuurrrrnnnn is used to return from function calls.
Errors within functions return control to the caller.
Function identifiers can be listed with the ffffuuuunnnnccccttttiiiioooonnnn special command.
The text of functions will also be listed. Function can be undefined
with the uuuunnnnffffuuuunnnnccccttttiiiioooonnnn special command.
Ordinarily, functions are unset when the shell executes a shell
script. Functions that need to be defined across separate invocations
of the shell should be placed in the EEEENNNNVVVV file.
SSSSppppeeeecccciiiiaaaallll CCCCoooommmmmmmmaaaannnnddddssss
Input/output redirection is permitted for these commands. File
descriptor 1 is the default output location.
:::: No effect; the command does nothing. A zero exit code is
returned.
_l_e_t_t_e_r::::
Select the drive specified by _l_e_t_t_e_r.
.... _f_i_l_e
Read and execute commands from _f_i_l_e and return. The search path
specified by PPPPAAAATTTTHHHH is used to find the directory containing _f_i_l_e.
aaaalllliiiiaaaassss [ ----tttt ] [ _n_a_m_e[=_v_a_l_u_e ] ... ]
AAAAlllliiiiaaaassss with no arguments prints the list of aliases in the form
- 22 - Formatted: April 14, 1992
SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
_n_a_m_e=vvvvaaaalllluuuueeee on standard output. An alias is defined for each _n_a_m_e
whose _v_a_l_u_e is given. A trailing space in _v_a_l_u_e causes the next
word to be checked for alias substitution. The ----tttt flag is used
to set and list tracked aliases. The _v_a_l_u_e of a tracked alias is
the full pathname corresponding to the given name. The _v_a_l_u_e
becomes undefined when the _v_a_l_u_e of PATH is reset but the aliases
remained tracked. Without the ----tttt flag, for each _n_a_m_e in the
argument list for which no _v_a_l_u_e is given, the _n_a_m_e and _v_a_l_u_e of
the alias is printed. Alias returns zero unless a _n_a_m_e is given
for which no alias has been defined.
bbbbrrrreeeeaaaakkkk [ _n ]
Exit from the enclosing ffffoooorrrr or wwwwhhhhiiiilllleeee loop, if any. If _n is
specified, break _n levels.
bbbbuuuuiiiillllttttiiiinnnn [ _a_r_g_s ... ]
Force the selection of the bbbbuuuuiiiillllttttiiiinnnn version of a command. The
builtin shell command selected by the first _a_r_g_s value is
executed with the parameters defined by the remaining _a_r_g_ss. If
no arguments are given, a list of all _b_u_i_l_t_i_n commands is
printed.
If the first argument is one of the following, the processing of
the builtin command in the following arguments are changed as
indicated:
----aaaa Set the following builtin commands to use builtin version in
preference to any function or external versions.
----dddd Set the following builtin commands to use the function or
external version in preference to the builtin version.
----ssss Display the current status of the following builtin
commands.
ccccoooonnnnttttiiiinnnnuuuueeee [ _n ]
Resume the next iteration of the enclosing ffffoooorrrr or wwwwhhhhiiiilllleeee loop. If
_n is specified, resume at the _n-th enclosing loop.
ccccdddd [ _a_r_g ]
ccccdddd _s_e_a_r_c_h _r_e_p_l_a_c_e
This command can be in either of two forms. In the first form it
changes the current directory to _a_r_g. The shell parameter HHHHOOOOMMMMEEEE
is the default _a_r_g. The shell parameter CCCCDDDDPPPPAAAATTTTHHHH defines the
search path for the directory containing _a_r_g. Alternative
directory names are separated by a semi-colon (;;;;). The default
path is <<<<nnnnuuuullllllll>>>> (specifying the current directory). Note that the
current directory is specified by a null path name, which can
appear immediately after the equal sign or between the semi-colon
delimiters anywhere else in the path list. If _a_r_g begins with a
//// or xxxx:::: (where x is a drive letter), the search path is not used.
- 23 - Formatted: April 14, 1992
SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
Otherwise, each directory in the path is searched for _a_r_g. The
_c_d command may not be executed by _r_s_h.
In the second form, ccccdddd substitutes the string _r_e_p_l_a_c_e for the
string _s_e_a_r_c_h in the current directory name, PPPPWWWWDDDD and tries to
change to this new directory.
ddddeeeettttaaaacccchhhh _p_r_o_g_r_a_m [ _a_r_g_s ]
This command (which is only available under OS/2) starts and
simultaneously detaches an OS/2 _p_r_o_g_r_a_m from the shell. Any
_p_r_o_g_r_a_m that is started with ddddeeeettttaaaacccchhhh command must be able to
process independently outside the control of the shell. Builtin
shell commands and functions cannot be detached.
eeeecccchhhhoooo [ _a_r_g ... ]
Echo arguments. EEEEcccchhhhoooo writes its arguments separated by blanks and
terminated by a new-line on the standard output. It also
understands C-like escape conventions; beware of conflicts with
the shell's use of \\\\:
\\\\bbbb backspace
\\\\cccc print line without new-line
\\\\ffff form-feed
\\\\nnnn new-line
\\\\rrrr carriage return
\\\\tttt tab
\\\\vvvv vertical tab
\\\\\\\\ backslash
\\\\_n the 8-bit character whose ASCII code is the 1-, 2- or 3-
digit octal number _n, which must start with a zero.
_E_c_h_o is useful for producing diagnostics in command files
and for sending known data into a pipe.
eeeevvvvaaaallll [ _a_r_g ... ]
The arguments are read as input to the shell and the resulting
command(s) executed.
eeeexxxxeeeecccc [ _a_r_g ... ]
The command specified by the arguments is executed in place of
this shell without creating a new process. Input/output
arguments may appear and, if no other arguments are given, cause
the shell input/output to be modified.
eeeexxxxiiiitttt [ _n ]
Causes a shell to exit with the exit status specified by _n. If _n
is omitted the exit status is that of the last command executed
(an end-of-file will also cause the shell to exit.)
eeeexxxxppppoooorrrrtttt [ _n_a_m_e[=_v_a_l_u_e] ... ]
The given _n_a_m_es are marked for automatic export to the
- 24 - Formatted: April 14, 1992
SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
_e_n_v_i_r_o_n_m_e_n_t of subsequently-executed commands. If no arguments
are given, a list of all names that are exported in this shell is
printed. Function names may _n_o_t be exported.
ffffaaaallllsssseeee
No effect; the command does nothing. A non-zero exit code is
returned.
ffffcccc [ ----eeee _E_d_i_t_o_r_N_a_m_e ] [ ----nnnnllllrrrr ] [ _F_i_r_s_t [ _L_a_s_t ] ]
ffffcccc ----eeee ---- [ _O_l_d=_N_e_w ] [ _C_o_m_m_a_n_d ]
In the first form, a range of commands from _F_i_r_s_t to _L_a_s_t is
selected from the last 100 commands that were typed at the
terminal. The _F_i_r_s_t and _L_a_s_t parameters can be specified as a
number or as a string. A string locates the most recent command
starting with the given string. A negative number is used as an
offset to the current command number. If _L_a_s_t is not specified,
then it is set to _F_i_r_s_t. If _F_i_r_s_t is not specified, the default
is the previous command for editing and -16 for listing.
----llll Lists the commands to standard output.
----rrrr Reverses the order of the commands in the list.
----nnnn Suppresses command numbers when listing.
If the ----llll flag is not specified, the editor program specified by
_E_d_i_t_o_r_N_a_m_e is invoked on a file containing these key-board
commands. If _E_d_i_t_o_r_N_a_m_e is not supplied, then the value of the
FFFFCCCCEEEEDDDDIIIITTTT parameter is used as the editor. When editing is
complete, the edited command(s) is executed.
In the second form, the specified _c_o_m_m_a_n_d is carried out again
after the _O_l_d=_N_e_w substitution is performed.
ffffuuuunnnnccccttttiiiioooonnnnssss [ _n_a_m_e ... ]
The functions given by _n_a_m_es are printed. If no arguments are
given, a all the functions are displayed.
ggggeeeettttoooopppptttt _o_p_t_s_t_r_i_n_g _n_a_m_e [ _a_r_g_s ... ]
Parse command options and write them to standard output. GGGGeeeettttoooopppptttt
is used to break up options in command lines for easy parsing by
shell procedures and to check for legal options. _O_p_t_s_t_r_i_n_g is a
string of recognized option letters (see _g_e_t_o_p_t(3C)); if a letter
is followed by a colon, the option is expected to have an
argument which may or may not be separated from it by white
space. The special option -------- is used to delimit the end of the
options. If it is used explicitly, ggggeeeettttoooopppptttt will recognize it;
otherwise, ggggeeeettttoooopppptttt will generate it; in either case, ggggeeeettttoooopppptttt will
place it at the end of the options. Each option is preceded by a
---- and is in its own positional parameter; each option argument is
also parsed into its own positional parameter.
- 25 - Formatted: April 14, 1992
SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
The following code fragment shows how one might process the
arguments for a command that can take the options aaaa or bbbb, as well
as the option oooo, which requires an argument:
set -- `getopt abo: $*`
if [ $? != 0 ]
then
echo $USAGE
exit 2
fi
for i in $*
do
case $i in
-a | -b) FLAG=$i; shift;;
-o) OARG=$2; shift 2;;
--) shift; break;;
esac
done
This code will accept any of the following as equivalent:
cmd -aoarg file file
cmd -a -o arg file file
cmd -oarg -a file file
cmd -a -oarg -- file file
hhhhiiiissssttttoooorrrryyyy [ ----ddddeeeeiiiillllssss ]
The hhhhiiiissssttttoooorrrryyyy command, with no arguments, will print all the
commands that are currently saved in the shell's history buffers.
As new commands are executed, and space in the buffers runs out,
old commands will be deleted. The hhhhiiiissssttttoooorrrryyyy commands prints out
the stored commands with sequence numbers. Negative numbered
commands, through command number zero, are commands that were
retrieved from the saved history file. Commands starting at one
were entered during the current login session. If a saved
command contains embedded newlines, these will be printed out as
the sequence \\\\nnnn, so that individual command stay on one line.
The arguments changes the way the shell processes history
information as follows:
----dddd Disable the saving of commands in the history file.
----eeee Enable the saving of commands in the history file.
----iiii Initialise the history file.
----llll Load the history from the file given by the HHHHIIIISSSSTTTTFFFFIIIILLLLEEEE
environment variable.
- 26 - Formatted: April 14, 1992
SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
----ssss Save the history to the file given by the HHHHIIIISSSSTTTTFFFFIIIILLLLEEEE
environment variable.
jjjjoooobbbbssss [ ----llll ]
This command (which is only available under OS/2) lists the
active jobs; giving the -l options lists process id's in addition
to the normal information.
kkkkiiiillllllll [ ----ssssiiiigggg ] process ...
This command (which is only available under OS/2) sends either
the TTTTEEEERRRRMMMM (terminate) signal or the specified signal to the
specified _p_r_o_c_e_s_s_e_s. _S_i_g_n_a_l_s _a_r_e _g_i_v_e_n _b_y _n_a_m_e, _w_h_i_c_h _a_r_e _l_i_s_t_e_d
_b_y ''''kkkkiiiillllllll ----llll''''.
lllleeeetttt [ _a_r_g ... ]
Each _a_r_g is an arithmetic expression to be evaluated. All
calculations are done as long integers and no check for overflow
is performed. See AAAArrrriiiitttthhhhmmmmeeeettttiiiicccc EEEEvvvvaaaalllluuuuaaaattttiiiioooonnnn above for a description
of arithmetic expressions..
The return code is 0 if the value of the last expression is non-
zero, and 1 otherwise.
mmmmssssddddoooossss [ _n_a_m_e[=_v_a_l_u_e] ... ]
The given _n_a_m_es are marked _m_s_d_o_s format and if the ----mmmm flag is
set, the values of the these _n_a_m_es are exported to child
processes with any slashes in the value replaced by \\\\s. If no
arguments are given, a list of all _m_s_d_o_s names is printed.
pppprrrriiiinnnntttt [ ----RRRRnnnnpppprrrrssss ] [ ----uuuu uuuunnnniiiitttt ] [ _a_r_g_s ... ]
The shell output mechanism. With no flags or with flag - or --
the _a_r_g_s are printed on standard output as described by the eeeecccchhhhoooo
command.
----RRRR Prints in the raw mode, in which the escape conventions of
the eeeecccchhhhoooo command are ignored. The -_R option prints all
subsequent _a_r_g_s and options other than -_n.
----nnnn Prevents a new-line from being added to the output.
----pppp ----pppp flag has not effect and is defined for compatability.
----rrrr Prints in the raw mode, in which the escape conventions of
the eeeecccchhhhoooo command are ignored.
----ssss Writes the _a_r_g_s to the history file instead of to standard
output.
----uuuu uuuunnnniiiitttt
Specifies a one digit file descriptor uuuunnnniiiitttt number on which
the output is placed. The default is 1.
- 27 - Formatted: April 14, 1992
SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
ppppwwwwdddd [ _d_r_i_v_e ... ]
Print the current working directory. If _d_r_i_v_e is present, the
current working directory on each of the drives is printed.
_d_r_i_v_e contains a string of drive letters, no colons are required.
rrrreeeeaaaadddd [ ----pppprrrrssss ] [ ----uuuu uuuunnnniiiitttt ] [ _n_a_m_e?_p_r_o_m_p_t ] [ _n_a_m_e ... ]
The shell input mechanism. One line is read and is broken up
into words using the characters in IIIIFFFFSSSS as separators. In raw
mode, ----rrrr, a \\\\ at the end of a line does not signify line
continuation. The first word is assigned to the first _n_a_m_e, the
second word to the second _n_a_m_e, etc., with leftover words
assigned to the last _n_a_m_e. If the ----ssss flag is present, the input
will be saved as a command in the history file. The ----pppp flag has
not effect and is defined for compatability. The flag ----uuuu can be
used to specify a one digit file descriptor uuuunnnniiiitttt to read from.
The file descriptor can be opened with the eeeexxxxeeeecccc special command.
The default value of uuuunnnniiiitttt is 0. If _n_a_m_e is omitted then RRRREEEEPPPPLLLLYYYY is
used as the default name. If the first argument contains a ????,
the remainder of this word is used as a prompt when the shell is
interactive. If the given file descriptor is open for writing
and is a terminal device then the prompt is placed on this unit.
Otherwise the prompt is issued on file descriptor 2. The return
code is 0 unless an end-of-file is encountered.
rrrreeeeaaaaddddoooonnnnllllyyyy [ _n_a_m_e[=_v_a_l_u_e] ... ]
The given _n_a_m_es are marked _r_e_a_d_o_n_l_y and the values of the these
_n_a_m_es may not be changed by subsequent assignment. If no
arguments are given, a list of all _r_e_a_d_o_n_l_y names is printed.
rrrreeeettttuuuurrrrnnnn [ _n ]
Causes a function to exit with the return value specified by _n.
If _n is omitted, the return status is that of the last command
executed.
sssseeeetttt [ [----||||++++]aaaaeeeeffffkkkkmmmmnnnnttttuuuuvvvvxxxx ] [ ----oooo ooooppppttttiiiioooonnnn ] [ _a_r_g ... ]
----aaaa Mark variables which are modified or created for export.
----eeee Exit immediately if a command exits with a non-zero exit
status.
----ffff Disable file name generation
----kkkk All keyword arguments are placed in the environment for a
command, not just those that precede the command name.
----mmmm For those variables marked as mmmmssssddddoooossss variables, the values
are exported to child processes with the slashes replaced by
\\\\s. Most MSDOS utilities do not care if a file name
contains a slash or \\\\ as a directory separator. However,
some like the _l_i_n_k_e_r require \\\\s in the value of the LLLLIIIIBBBB
- 28 - Formatted: April 14, 1992
SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
variable.
----nnnn Read commands but do not execute them.
----oooo ooooppppttttiiiioooonnnn
The argument that follows this option can be one of the
following option names:
aaaalllllllleeeexxxxppppoooorrrrtttt
Same as ----aaaa....
bbbbeeeellllllll Enable alarm bell on errors
eeeerrrrrrrreeeexxxxiiiitttt
Same as ----eeee....
hhhhaaaallllffffhhhheeeeiiiigggghhhhtttt
Set cursor to halfheight when in insert mode. If off,
a full height cursor is used.
iiiiggggnnnnoooorrrreeeeeeeeooooffff
The shell will not exit on end-of-file. The command
exit must be used.
iiiinnnnsssseeeerrrrttttmmmmooooddddeeee
Set the default edit mode to insert rather than
overwrite.
kkkkeeeeyyyywwwwoooorrrrdddd
Same as ----kkkk....
mmmmaaaarrrrkkkkddddiiiirrrrssss
Appends a / (slash) to all directory names that are a
result of file name substitution.
nnnnoooocccclllloooobbbbbbbbeeeerrrr
Prevents redirection >>>> from truncating existing files.
A vertical bar must follow the redirection symbol ((((>>>>||||))))
to truncate a file when this option is turned on.
nnnnooooeeeexxxxeeeecccc
Same as ----nnnn....
nnnnoooogggglllloooobbbb
Same as ----ffff....
nnnnoooouuuunnnnsssseeeetttt
Same as ----uuuu....
pppprrrriiiivvvviiiilllleeeeggggeeeedddd
Same as ----pppp....
- 29 - Formatted: April 14, 1992
SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
ttttrrrraaaacccckkkkaaaallllllll
Same as ----hhhh....
vvvveeeerrrrbbbboooosssseeee
Same as ----vvvv....
xxxxttttrrrraaaacccceeee
Same as ----xxxx....
----tttt Exit after reading and executing one command.
----uuuu Treat unset variables as an error when substituting.
----vvvv Print shell input lines as they are read.
----xxxx Print commands and their arguments as they are executed.
-------- Do not change any of the flags; useful in setting $$$$1111 to ----.
Using ++++ rather than ---- causes these flags to be turned off.
These flags can also be used upon invocation of the shell.
The current set of flags may be found in $$$$----. The remaining
arguments are positional parameters and are assigned, in
order, to $$$$1111, $$$$2222, .... If no arguments are given the values
of all names are printed.
sssshhhhiiiifffftttt [ _n ]
The positional parameters from $$$$nnnn++++1111 ... are renamed $$$$1111 .... If
_n is not given, it is assumed to be 1.
ssssttttaaaarrrrtttt [ ----ddddffffiiiiCCCCWWWWPPPPFFFF ] [ ----tttt ttttiiiittttlllleeee ] [ _p_r_o_g_r_a_m [ _a_r_g_u_m_e_n_t_s.. ] ]
This command (which is only available under OS/2) starts an OS/2
_p_r_o_g_r_a_m in a new session. If no _p_r_o_g_r_a_m and _a_r_g_u_m_e_n_t_s parameters
are entered, the shell is started unless the -C option has been
used to select the OS/2 command processor.
The arguments changes the way the shell starts the session as
follows:
----dddd Normally, command are started by invoking the shell in the
new session. This option invokes the command directly.
----ffff The program becomes the foreground session. If this
parameter is not specified, the program becomes a background
session.
----iiii The new session will inherit the original environment of the
shell instead of the current environment.
----tttt ttttiiiittttlllleeee
Sets the _t_i_t_l_e of the new session.
- 30 - Formatted: April 14, 1992
SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
----FFFF This application is a full-screen application that must run
in a separate session independent of Presentation Manager.
----WWWW This is an OS/2 application that runs within a Presentation
Manager window.
----PPPP This application is started as a Presentation Manager
application.
----CCCC Use the OS/2 command processor instead of the shell.
sssswwwwaaaapppp [ _o_p_t_i_o_n_s ]
This command (which is only available under MS-DOS) defines how
the shell will handle swapping itself to reduce its memory
requirements whilst other programs execute. The options are
ooooffffffff Disable swapping. The shell remains in memory whilst the
child is running and reduces the available memory by about
200K (depending on the size of the environment and history).
oooonnnn Enable all devices. The shell will swap out to either
expanded or extended memory or to disk, execute the command
and then swap back in. Whilest swapped, the shell reduces
the available memory by about 3K.
eeeexxxxppppaaaannnndddd
Enable swapping to Expanded Memory. The EMS driver must
exist on your system for this to work.
eeeexxxxtttteeeennnndddd [ _s_t_a_r_t _a_d_d_r_e_s_s ]
Enable swapping to Extended Memory. If you have an XMS
driver on your system, the shell will use the XMS driver.
Otherwise, the BIOS Interrupt 15 interface is used. The
optional start address defines the based address in the
Extended Memory at which point the shell writes its swap
area when the BIOS interface is used. The default location
is _0_x_1_0_0_0_0_0.
ddddiiiisssskkkk Enable swapping to disk. The shell creates a temporary file
and saves itself in it. On completion, the file is deleted.
This is the slowest method of swapping.
With no options, the current swapping options are displayed.
tttteeeesssstttt _e_x_p_r or [[[[ _e_x_p_r ]]]]
Evaluate conditional expressions. TTTTeeeesssstttt evaluates the expression
_e_x_p_r and, if its value is true, returns a zero (true) exit
status; otherwise, a non-zero (false) exit status is returned;
tttteeeesssstttt also returns a non-zero exit status if there are no
arguments. The primitives are the same as for the [[[[[[[[ _e_x_p_r_e_s_s_i_o_n
]]]]]]]] command, except that -_a and -_o are not primitives, but are
- 31 - Formatted: April 14, 1992
SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
used to combine operators (see tttteeeesssstttt ((((1111))))). -_a is the binary aaaannnndddd
operator and -_o is the binary oooorrrr operator.
Notice that all the operators and flags are separate arguments to
tttteeeesssstttt. Notice also that parentheses are meaningful to the shell
and, therefore, must be escaped.
ttttrrrraaaapppp [ _a_r_g ] [ _S_i_g_n_a_l_N_u_m_b_e_r ] ...
The command _a_r_g is to be read and executed when the shell
receives signal(s) _S_i_g_n_a_l_N_u_m_b_e_r. (Note that _a_r_g is scanned once
when the trap is set and once when the trap is taken.) Trap
commands are executed in order of signal number. Any attempt to
set a trap on a signal that was ignored on entry to the current
shell is ineffective. If _a_r_g is absent all trap(s) _S_i_g_n_a_l_N_u_m_b_e_r
are reset to their original values. If _a_r_g is the null string
this signal is ignored by the shell and by the commands it
invokes. If _S_i_g_n_a_l_N_u_m_b_e_r is DDDDEEEEBBBBUUUUGGGG then _a_r_g will be executed
after each command. If _S_i_g_n_a_l_N_u_m_b_e_r is EEEERRRRRRRR, _a_r_g will be executed
whenever a command has a non-zero exit code. If _S_i_g_n_a_l_N_u_m_b_e_r is
0 or EEEEXXXXIIIITTTT and the trap statement is executed inside the body of a
function, the command _a_r_g is executed after the function
completes. If _S_i_g_n_a_l_N_u_m_b_e_r is 0 or EEEEXXXXIIIITTTT for a trap set outside
any function, the command _a_r_g is executed on exit from the shell.
The ttttrrrraaaapppp command with no arguments prints a list of commands
associated with each signal number.
ttttrrrruuuueeee No effect; the command does nothing. A zero exit code is
returned.
ttttyyyyppppeeeesssseeeetttt [ ----HHHHLLLLRRRRZZZZffffiiiillllpppprrrrttttuuuuxxxx[nnnn] [ nnnnaaaammmmeeee[ ====vvvvaaaalllluuuueeee ] ] ... ]
When invoked inside a function, a new instance of the parameter
name is created. The parameter value and type are restored when
the function completes. The following list of attributes may be
specified:
----HHHH This flag provides UNIX to host-name file mapping on non-
UNIX machines (see mmmmssssddddoooossss command).
----LLLL Left justify and remove leading blanks from value. If nnnn is
non-zero it defines the width of the field, otherwise it is
determined by the width of the value of first assignment.
When the parameter is assigned to, it is filled on the right
with blanks or truncated, if necessary, to fit into the
field. Leading zeros are removed if the ----ZZZZ flag is also
set. The ----RRRR flag is turned off.
----RRRR Right justify and fill with leading blanks. If nnnn is non-
zero, it defines the width of the field, otherwise it is
determined by the width of the value of first assignment.
The field is left filled with blanks or truncated from the
end if the parameter is reassigned. The ----LLLL flag is turned
- 32 - Formatted: April 14, 1992
SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
off.
----ZZZZ Right justify and fill with leading zeros if the first non-
blank character is a digit and the ----LLLL flag has not been set.
If nnnn is non-zero, it defines the width of the field,
otherwise it is determined by the width of the value of
first assignment.
----ffff The names refer to function names rather than parameter
names. No assignments can be made and the only other valid
flags are ----tttt, which turns on execution tracing for this
function and ----xxxx, to allow the function to remain in effect
across shell procedures executed in the same process
environment.
----iiii Parameter is an integer. This makes arithmetic faster. If
nnnn is non-zero it defines the output arithmetic base,
otherwise the first assignment determines the output base.
----llll All upper-case characters converted to lower-case. The
upper-case flag, ----uuuu is turned off.
----pppp The output of this command, if any, is written onto the
two-way pipe. TTTThhhhiiiissss ooooppppttttiiiioooonnnn hhhhaaaassss nnnnoooo eeeeffffffffeeeecccctttt iiiinnnn tttthhhheeee SSSShhhheeeellllllll.
----rrrr The given names are marked readonly and these names cannot
be changed by subsequent assignment.
----tttt Tags the named parameters. Tags are user definable and have
no special meaning to the shell.
----uuuu All lower-case characters are converted to upper-case
characters. The lower-case flag, ----llll is turned off.
----xxxx The given names are marked for automatic export to the
environment of subsequently-executed commands.
Using + rather than - causes these flags to be turned off. If no
name arguments are given but flags are specified, a list of names
(and optionally the values) of the parameters which have these
flags set is printed. (Using + rather than - keeps the values to
be printed.) If no names and flags are given, the names and
attributes of all parameters are printed.
uuuummmmaaaasssskkkk [ _n_n_n ]
The user file-creation mask is set to _n_n_n (see _u_m_a_s_k(2)). If _n_n_n
is omitted, the current value of the mask is printed.
uuuunnnnaaaalllliiiiaaaassss _n_a_m_e ...
The aliases given by the list of _n_a_m_es are removed from the alias
list.
- 33 - Formatted: April 14, 1992
SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
uuuunnnnffffuuuunnnnccccttttiiiioooonnnn _n_a_m_e ...
For each _n_a_m_e, remove the corresponding function.
uuuunnnnsssseeeetttt [ ----ffff ] _n_a_m_e ...
The parameters given by the list of _n_a_m_es are unassigned (their
values and attributes are erased). The following variables, as
well as those with a read-only attribute cannot be unset: PPPPAAAATTTTHHHH,
PPPPSSSS1111, PPPPSSSS2222, and IIIIFFFFSSSS. If the -f flag is set, then the names refer
to function names and the functions are removed.
vvvveeeerrrr Display the current version of the shell.
wwwwhhhheeeennnncccceeee [ ----ppppvvvv ] [ _n_a_m_e ... ]
ttttyyyyppppeeee [ ----pppp ] [ _n_a_m_e ... ]
For each _n_a_m_e specified, indicate how it would be interpreted if
used as a command name. Note that ttttyyyyppppeeee is a shorthand for wwwwhhhheeeennnncccceeee
----vvvv.
----pppp Does a path search for _n_a_m_e even if the name is an alias, a
function, or a reserved word.
----vvvv Produces a more verbose report.
IIIInnnnvvvvooooccccaaaattttiiiioooonnnn
If the shell is invoked through _e_x_e_c(2) and the first character of
argument zero is ---- or the ----0000(zero) switch is in the invokation line,
commands are initially read from ////eeeettttcccc////pppprrrrooooffffiiiilllleeee....sssshhhh and from
$$$$HHHHOOOOMMMMEEEE////pppprrrrooooffffiiiilllleeee....sssshhhh, if such files exist. Next, commands are read from
the file named by performing parameter substitution on the value of
the environment parameter EEEENNNNVVVV if the file exists. Thereafter,
commands are read as described below, which is also the case when the
shell is invoked as ////bbbbiiiinnnn////sssshhhh. The flags below are interpreted by the
shell on invocation only; Note that unless the ----cccc or ----ssss flag is
specified, the first argument is assumed to be the name of a file
containing commands, and the remaining arguments are passed as
positional parameters to that command file:
----cccc string If the ----cccc flag is present commands are read from _s_t_r_i_n_g.
----ssss If the ----ssss flag is present or if no arguments remain commands
are read from the standard input. Any remaining arguments
specify the positional parameters. Shell output (except for
_S_p_e_c_i_a_l _C_o_m_m_a_n_d_s) is written to file descriptor 2.
----iiii If the ----iiii flag is present or if the shell input and output
are attached to a terminal, this shell is _i_n_t_e_r_a_c_t_i_v_e. In
this case, the TERMINATE signal is ignored and the INTERRUPT
signal is caught and ignored. In all cases, the QUIT signal
is ignored by the shell.
- 34 - Formatted: April 14, 1992
SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
----rrrr If the ----rrrr flag is present, the shell is a restricted shell.
----0000(zero) If the ----0000(zero) flag is present, this has the same effect as
starting the shell with the first character of argument zero
as a ---- (see above).
----RRRR If the ----RRRR flag is present, the shell is the _r_o_o_t shell and
cannot be terminated using exit. Under MSDOS, the system
must be re-booted. Under OS/2, the shell must be killed by
an external program.
The remaining flags and arguments are described under the sssseeeetttt command
above.
RRRRsssshhhh OOOOnnnnllllyyyy
_R_s_h is used to set up login names and execution environments whose
capabilities are more controlled than those of the standard shell.
The actions of _r_s_h are identical to those of _s_h, except that the
following are disallowed:
Changing directory (see _c_d(1)),
Setting the value of SSSSHHHHEEEELLLLLLLL, EEEENNNNVVVV, or $$$$PPPPAAAATTTTHHHH,
Specifying path or command names containing ////,
Redirecting output (>>>> and >>>>>>>>).
The restrictions above are enforced after pppprrrrooooffffiiiilllleeee....sssshhhh and the EEEENNNNVVVV files
are interpreted.
When a command to be executed is found to be a shell procedure, _r_s_h
invokes _s_h to execute it. Thus, it is possible to provide to the
end-user shell procedures that have access to the full power of the
standard shell, while imposing a limited menu of commands; this scheme
assumes that the end-user does not have write and execute permissions
in the same directory.
The net effect of these rules is that the writer of the pppprrrrooooffffiiiilllleeee....sssshhhh has
complete control over user actions, by performing guaranteed setup
actions and leaving the user in an appropriate directory (probably _n_o_t
the login directory).
The system administrator often sets up a directory of commands (i.e.,
////uuuussssrrrr////rrrrbbbbiiiinnnn) that can be safely invoked by _r_s_h. Some systems also
provide a restricted editor _r_e_d.
EEEEXXXXIIIITTTT SSSSTTTTAAAATTTTUUUUSSSS
Errors detected by the shell, such as syntax errors, cause the shell
to return a non-zero exit status. If the shell is being used non-
interactively execution of the shell file is abandoned. Otherwise,
the shell returns the exit status of the last command executed (see
also the eeeexxxxiiiitttt command above).
- 35 - Formatted: April 14, 1992
SSSSHHHH((((1111LLLL)))) MMMMSSSS----DDDDOOOOSSSS ---- OOOOSSSS////2222 VVVVeeeerrrrssssiiiioooonnnn 2222....0000 SSSSHHHH((((1111LLLL))))
DDDDaaaattttaaaa LLLLooooggggiiiicccc LLLLiiiimmmmiiiitttteeeedddd
FFFFIIIILLLLEEEESSSS
/etc/profile.sh
$HOME/profile.sh
$HOME/history.sh.
$TMP/sh*.tmp
??/sh.ini
CCCCRRRRIIIITTTTIIIICCCCAAAALLLL EEEERRRRRRRROOOORRRRSSSS
The Shell provide a Critical Error Handler (Interrupt 24) similar to
the standard MSDOS handler. In addition to the standard message, the
handler also displays the Extended Error Code information in
hexadecimal.
LLLLIIIIMMMMIIIIIIIITTTTAAAATTTTIIIIOOOONNNNSSSS
Under MS-DOS, any TSR (Terminate Stay Resident) programs must be
loaded before loading _S_h as the shell will overwrite the TSR when it
reloads itself after swapping out.
Under OS/2, asynchronous commands are supported to a degree. However,
this is very limited because of the nature of the forking commands
under OS/2 which does not match the UNIX model. This difference has
also meant that pipes (as in MS-DOS) are implemented as files and not
OS/2 pipes. For more details, see the source code.
SSSSEEEEEEEE AAAALLLLSSSSOOOO
cd(1), env(1), test(1), umask(1).
dup(2), exec(2), pipe(2), signal(2), umask(2), wait(2), strtol(3),
profile(4), environ(5) in the _U_N_I_X _S_y_s_t_e_m _P_r_o_g_r_a_m_m_e_r _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l.
AAAACCCCKKKKNNNNOOOOWWWWLLLLEEEEDDDDGGGGEEEEMMMMEEEENNNNTTTTSSSS
This program is based on ideas, code or parts of code developed by:
David Korn and Steve Bourne (the original ideas)
Charles Forsyth (the original source for the MINIX Shell program)
Erik Baalbergen (the code for the test function)
Paul Falstad (the code for the maths functions)
In addition, a very large number of people (too many to mention) who
have been involved in testing and debugging the program.
- 36 - Formatted: April 14, 1992